info o exception

Otázka od: L?ikola Petr

8. 6. 2004 17:10

Zdravim, zkompiloval jsem vicevlaknovou aplikaci, kde "nekde" dochazi k
vyjimce.

o vyjimce vim z delphi eventlogu toto:
First chance exception at $7C59BA9D. Exception class ElistError with message
List index of bounds(13). Proces project1.exe ($CAB).

nechal jsem si vytvorit detailni map file map file.

Lze z vyse uvedeneho nejak zjistit, kde ta vyjimka nastava ?

Dikz
Petr Sikola



Odpovedá: Benda Lukas

26. 7. 2004 8:53

> List index of bounds(13)

Vznika tam kde pretece pocet prvku v poli. Napr. kdyz ctes z ListBoxu prvek s
poradovym cislem pet a pritom v list boxu je prvku jenom pet (rozumnej
cislovani zacina od nuly, takze prvky jsou 0 az 4).

Tohle se stava i tobe, akorat ze se snazis precist trinacty prvek, ktery ale
neexistuje.

Zkus si vlozti do try except bloku vsechno to, kde pouzivat TStrings (to muze
byt i v PopupMenu, ComboBoxu) a uvidis ze to prestane.

Btw. ale i kdyz to prestane, zkus si postupne, napr. pomoci ShowMessage vypsat
misto, kde k vijimce dochazi, neni to tak tezke zjistit.

Lukas Benda


Odpovedá: Petr Brant

26. 7. 2004 9:37

Sice nevidim puvodni dotaz (odpoved prisla driv), ale pokud jde o nalezeni
mista v kodu, ktere zpusobuje potize (rozumi se ovsem v hotove verzi, ktera
bezi u zakaznika, ne v okamziku vyvoje), tak se mi osvedcil Exceptdlg z JCL.
Jen je treba nastavit linker tak, aby generoval MAP soubor.

RNDr. Petr Brant [brant@dcomm.cz]
http://web.redbox.cz/petr.brant <http://web.redbox.cz/petr.brant>

D&COMM s.r.o.
Korunovacni 6
Praha 7
tel. +420724007234



> > List index of bounds(13)
>
> Vznika tam kde pretece pocet prvku v poli. Napr. kdyz ctes z ListBoxu
> prvek s poradovym cislem pet a pritom v list boxu je prvku jenom pet
> (rozumnej cislovani zacina od nuly, takze prvky jsou 0 az 4).
>
> Tohle se stava i tobe, akorat ze se snazis precist trinacty prvek, ktery
> ale neexistuje.
>
> Zkus si vlozti do try except bloku vsechno to, kde pouzivat TStrings (to
> muze byt i v PopupMenu, ComboBoxu) a uvidis ze to prestane.
>
> Btw. ale i kdyz to prestane, zkus si postupne, napr. pomoci ShowMessage
> vypsat misto, kde k vijimce dochazi, neni to tak tezke zjistit.
>
>